Maps for UWP
マップ範囲
C1Mapsの使い方 > マップ範囲

範囲を制限することにより、C1Maps コントロール上の領域または州を強調表示するのは単純であり、次の4つのプロパティを設定することにより実行できます。

これらのプロパティは、XAML マークアップ、コード、または設計時に[プロパティ]ウィンドウで設定できます。次の例では、設定された境界によってカリフォルニアが強調表示されます。

次のように、<c1:C1Maps/> タグを編集します。これで、緯度値にカリフォルニア州の上と下の境界が設定されます。経度値には、カリフォルニア州の境界よりもわずかに外側が設定されます。

XAML マークアップ
コードのコピー
<C1:C1Maps x:Name="maps" MaxLat="44" MinLat="32" Center="-121.224,37.8897" MaxLong="-112" MinLong="-126" MinZoom="5"/>

上のサンプルでは、Center プロパティと MinZoomValue プロパティも設定されています。

  • Center プロパティを使用すると、特定の都市または領域が地図の中心になります。上のサンプルでは、カリフォルニア州のストックトンが中心になっています。
  • MinZoom プロパティは、マップをロードする際の倍率を設定します。上のサンプルでは5に設定されており、マップが倍率5でズームされます。

次のコードは、マップ境界、マップの中心、およびロード時のズームレベルを設定します。これを InitializeComponent() メソッドに追加します。

C#
コードのコピー
maps.MaxLat = 44;
maps.MinLat = 32;
maps.MaxLong = -112;
maps.MinLong = -126;
maps.Center = new Point(-121.224, 37.8897);
maps.MinZoom = 5;

参考のために、次の画像を作成するためのすべてのコードを示します。コードをコピーするには、名前空間宣言内の YourProjectName を自分のプロジェクトの名前空間に置き換えてください。

C#
コードのコピー
namespace YourProjectName
{
public class City
{
public Point LongLat { get; set; }
public string Name { get; set; }
}

public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();

maps.MaxLat = 44;
maps.MinLat = 32;
maps.MaxLong = -112;
maps.MinLong = -126;
maps.Center = new Point(-121.224, 37.8897);
maps.MinZoom = 5;

City[] cities = new City[]
{
new City(){LongLat= new Point(-121.22361, 37.88972), Name="Stockton"},
new City(){LongLat= new Point(-117.1625, 32.7150), Name="San Diego"},
new City(){LongLat= new Point(-124.2017, 41.7558), Name="Crescent City"},
};
maps.DataContext = cities;
}
}
}

[プロパティ]ウィンドウで、最小および最大の緯度値と経度値、Center プロパティ、および MinZoomValue プロパティを設定できます。

[プロパティ]ウィンドウの画像では、次のマップ画像を作成するためのプロパティが強調表示されています。アプリケーションでこれらのプロパティを設定するには、プロパティの横のテキストボックスをクリックし、適切な数値を入力します。

上の例は、次の図のようなマップになります。

メモ: 上の画像で、都市は、クイックスタート内のコードに類似するコードを使用してマークされていました。このトピックのコードはすべて、[コードの場合]タブにあります。次の XAML マークアップを、<c1:C1Maps> <c1:C1Maps/> タグの間に追加し、都市のコレクションの形式を設定して C1Maps コントロールに連結する必要があることに注意してください。

XAML マークアップ
コードのコピー
<C1:C1Maps.Resources>
<!--Item template-->
<DataTemplate x:Key="templPts">
<C1:C1VectorPlacemark GeoPoint="{Binding Path=LongLat}" Fill="LightGreen"
Stroke="DarkGreen"

Label="{Binding Path=Name}" LabelPosition="Top" >
<C1:C1VectorPlacemark.Geometry>
<EllipseGeometry RadiusX="2" RadiusY="2"
/>
</C1:C1VectorPlacemark.Geometry>
</C1:C1VectorPlacemark>
</DataTemplate>
</C1:C1Maps.Resources>
<C1:C1VectorLayer ItemsSource="{Binding}" ItemTemplate="{StaticResource templPts}"/>